/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.mindbox.mueblesalpes.negocio.usuario;

import com.mindbox.mueblesalpes.negocio.entity.Usuario;
import com.mindbox.mueblesalpes.negocio.persistence.PersistenciaLocal;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.persistence.EntityExistsException;
import javax.persistence.TransactionRequiredException;

/**
 *
 * @author Diana Carolina
 */
@Stateless
public class UsuarioServiceBean implements UsuarioServiceLocal {

    @EJB
    private PersistenciaLocal persistencia;

    /**
     * Método que crea un usuario en el Sistema
     * Se realiza la captura de las excepciones
     * EntityExistsException: Si la entidad existe
     * IllegalStateException: Si la entidad se encuentra cerrada
     * IllegalArgumentException: si el objeto parámetro no es una entidad
     * TransactionRequiredException: si la invocación al entity manager de tipo PersistenceContextType.TRANSACTION no es una transacción
     * @param usuario: Datos del usuario
     * @return true si se pudo crear el usuario
     */
    public boolean crearUsuario(Usuario usuario) {
        try {
            persistencia.create(usuario);
            return true;
        } catch (EntityExistsException ex) {
            return false;
        } catch (IllegalStateException ex) {
            return false;
        } catch (IllegalArgumentException ex) {
            return false;
        } catch (TransactionRequiredException ex) {
            return false;
        }

    }
}
